配置屏参
1. 屏参配置文件介绍¶
屏参配置文件在alkaid中的路径为project/board/ini/misc/config.ini
系统启动过程中会去解析屏参配置文件,然后将不同屏参保存到系统中,给显示模块使用。
显示模块会根据用户调用API的参数设定向系统获取所需屏参。
屏参配置文件由section、variable name组成:
-
section:
文件中"[]"中的字段。
-
variable name:
文件中"="左边的字段,右边是给variable name赋的值。
section是唯一的,不允许有同名,但是variable name允许。如上图,section DACOUT_576I只能有一个,但是m_pPanelName可以在不同的section中。系统根据不同的section区分variable name,然后添加不同的屏参。
variable name的字段为系统预先定义,在添加新的屏参时,只能填写系统中现有的,新增或者修改时请告知owner,否则系统无法识别。如m_pPanelName,在新增屏参时只能使用m_pPanelName定义新的panel name。
variable name赋值示例如下:
2. 新增屏参¶
-
新屏参定义section name不能和现有section name相同
-
将新屏参的section name追加到ROOT section的m_pnlList变量中(不同接口的LCD section只能存在一个,比如m_pnlList中已经存在一个TTL的panel section name,那么如果想要添加新的TTL,只能删除掉之前存在的section)
-
将新的屏参添加到新的section中,如下:
[SAT070AT50H18BH] m_pPanelName = "SAT070AT50H18BH_1024x600"; m_bPanelDither = 0; m_ePanelLinkType = 0; #0:ttl 1:lvds 11:mipi m_bPanelInvDCLK = 0; m_bPanelInvDE = 0; m_bPanelInvHSync = 0; m_bPanelInvVSync = 0; m_wPanelHSyncWidth = 48; m_wPanelHSyncBackPorch = 46; m_wPanelVSyncWidth = 4; m_wPanelVBackPorch = 23; m_wPanelHStart = 98; m_wPanelVStart = 27; m_wPanelWidth = 1024; m_wPanelHeight = 600; m_wPanelHTotal = 1344; m_wPanelVTotal = 635; m_wPanelDCLK = 51; m_wSpreadSpectrumStep = 0; m_wSpreadSpectrumSpan = 0; m_eOutputFormatBitMode = 2; #0:10bit 1:6bit 2:8bit 3:565bit m_ucPanelSwapChnR = 3; m_ucPanelSwapChnG = 2; m_ucPanelSwapChnB = 1; m_ucPanelSwapRgbML = 1;
3. 屏参参数说明¶
参数 | 描述 |
---|---|
m_pPanelName | panel name |
m_bPanelDither | 1:enable Dither 0:disable Dither |
m_ePanelLinkType | 接口类型 TTL :0 MIPI_DSI :10 |
m_bPanelInvDCLK | Pixel clk极性反转 |
m_bPanelInvDE | DE极性反转 |
m_bPanelInvHSync | Hsync极性反转 |
m_bPanelInvVSync | Vsync极性反转 |
m_wPanelHSyncWidth | 行同步信号脉宽 |
m_wPanelHSyncBackPorch | 行同步信号后肩 |
m_wPanelVSyncWidth | 场同步信号脉宽 |
m_wPanelVBackPorch | 场同步信号后肩 |
m_wPanelHStart | m_wPanelHSyncWidth+m_wPanelHSyncBackPorch |
m_wPanelVStart | m_wPanelVSyncWidth+ m_wPanelVBackPorch |
m_wPanelWidth | 行有效像素点数 |
m_wPanelHeight | 场有效行数 |
m_wPanelHTotal | m_wPanelWidth+m_wPanelHSyncWidth+m_wPanelHSyncBackPorch+HsyncFrontPorch |
m_wPanelVTotal | m_wPanelHeight+m_wPanelVSyncWidth+ m_wPanelVBackPorch+VsyncFrontPorch |
m_wPanelDCLK | m_wPanelHTotal*m_wPanelVTotal*fps(IP内部使用clk) |
m_wSpreadSpectrumFreq | 时钟延展幅度调制(详见展频计算) |
m_wSpreadSpectrumRatio | 时钟延展频率调制(详见展频计算) |
m_eOutputFormatBitMode | 10BIT :0 6BIT :1 8BIT :2 565BIT :3 |
m_ucPanelSwapChnR | Swap Channel R 0:default 1:select R 2:select G 3:select B |
m_ucPanelSwapChnG | Swap Channel G 0:default 1:select R 2:select G 3:select B |
m_ucPanelSwapChnB | Swap Channel B 0:default 1:select R 2:select G 3:select B |
m_ucPanelSwapRgbML | Swap Rgb MSB/LSB 0:disable M/L swap 1:enable M/L swap |
如果是MIPI panel,还需要对MIPI DSI进行配置。
MIPI DSI参数说明:
参数 | 描述 |
---|---|
m_wHsTrail | Default: 5 |
m_wHsPrpr | Default: 3 |
m_wHsZero | Default: 5 |
m_wClkHsPrpr | Default: 10 |
m_wClkHsExit | Default: 14 |
m_wClkTrail | Default: 3 |
m_wClkZero | Default: 12 |
m_wClkHsPost | Default: 10 |
m_wDaHsExit | Default: 5 |
m_wContDet | Default:0 |
m_wLpx | Default:16 |
m_wTaGet | Default:26 |
m_wTaSure | Default:24 |
m_wTaGo | Default:50 |
m_wHactive | Follow 屏参设定 |
m_wHpw | Follow 屏参设定 |
m_wHbp | Follow 屏参设定 |
m_wHfp | Follow 屏参设定 |
m_wVactive | Follow 屏参设定 |
m_wVpw | Follow 屏参设定 |
m_wVbp | Follow 屏参设定 |
m_wVfp | Follow 屏参设定 |
m_wBllp | 0 |
m_wFps | Default:60 |
m_eLaneNum | one lane :1 two lane :2 three lane :3 four lane :4 |
m_eFormat | RGB565 :0 RGB666 :1 LOOSELY_RGB666 :2 RGB888 :3 |
m_eCtrlMode | CMD_MODE :0 SYNC_PULSE :1 SYNC_EVENT :2 BURST_MODE :3 |
m_ucClkLane | Clk lane selection(default:2) 0:select chn0 1:select chn1 2:select chn2 3:select chn3 4:select chn4 |
m_ucDataLane0 | data lane0 selection(default:4) 0:select chn0 1:select chn1 2:select chn2 3:select chn3 4:select chn4 |
m_ucDataLane1 | data lane1 selection(default:3) 0:select chn0 1:select chn1 2:select chn2 3:select chn3 4:select chn4 |
m_ucDataLane2 | data lane2 selection(default:1) 0:select chn0 1:select chn1 2:select chn2 3:select chn3 4:select chn4 |
m_ucDataLane3 | data lane3 selection(default:0) 0:select chn0 1:select chn1 2:select chn2 3:select chn3 4:select chn4 |
m_pCmdBuff | Mipi panel cmd m_pCmdBuff= { Cmd, parameter cnt, parameter0, parameter1, … , Cmd, parameter cnt, parameter0, parameter1, … , Cmd, parameter cnt, parameter0, parameter1, … , ……… } |
m_ucPolCh0 | Chn0极性 0:default 1:positive 2:negative |
m_ucPolCh1 | Chn1极性 0:default 1:positive 2:negative |
m_ucPolCh2 | Chn2极性 0:default 1:positive 2:negative |
m_ucPolCh3 | Chn3极性 0:default 1:positive 2:negative |
m_ucPolCh4 | Chn4极性 0:default 1:positive 2:negative |
根据屏规格书填写屏参:
在屏规格书中找到Timing相关部分,如下表定义:
屏规格书中Timing定义和屏参参数对应如下表所示:
m_wPanelHSyncWidth | HSYNC period time |
---|---|
m_wPanelHSyncBackPorch | 参考HSYNC blanking的要求 根据上表,如果HSYNC blanking为320,那么m_wPanelHSyncBackPorch要小于320,差值部分为hsync front porch大小 |
m_wPanelVSyncWidth | VSYNC period time |
m_wPanelVBackPorch | 参考VSYNC blanking的要求 根据上表,如果VSYNC blanking为35,那么m_wPanelVBackPorch要小于35,差值部分为vsync front porch大小 |
m_wPanelHStart | m_wPanelHSyncWidth+m_wPanelHSyncBackPorch |
m_wPanelVStart | m_wPanelVSyncWidth+ m_wPanelVBackPorch |
m_wPanelWidth | Horizonial display area |
m_wPanelHeight | Vertical display area |
m_wPanelHTotal | m_wPanelWidth+HSYNC blanking |
m_wPanelVTotal | m_wPanelHeight+VSYNC blanking |
m_wPanelDCLK | m_wPanelHTotal*m_wPanelVTotal*fps |
如果是MIPI panel,还需要配置MIPI AC timing相关参数,首先在panel规格书中找到MIPI timing specification部分。
UI的计算方法:
H_Total = HACT+HPW+HBP+HFP
V_Total = VACT+VPW+VBP+VFP
BitsPerPixel=24(RGB888)/18(RGB666)/16(RGB565)
Bitrate = H_Total*V_Total*FPS*BitsPerPixel/lane number
UI = 1/Bitrate
比如表格中HS-PREPARE的要求是大于40ns+4*UI并且小于85ns+6*UI,那么对应MIPI AC timing中的参数如下。
(40ns+4*UI)/8*UI \< m_wHsTrail \< (85ns+6*UI)/8*UI
其他MIPI AC timing中参数计算方法同上。
注意:
当前这套屏参设置需要更新:config_tool/mi_disp/mhal,若涉及uboot 点屏需要更新uboot。